perm filename A28.TEX[106,PHY] blob sn#807743 filedate 1985-10-09 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	\magnification\magstephalf
C00008 ENDMK
CāŠ—;
\magnification\magstephalf
\input macro.tex
\def\today{\ifcase\month\or
  January\or February\or March\or April\or May\or June\or
  July\or August\or September\or October\or November\or December\fi
  \space\number\day, \number\year}
\baselineskip 14pt
\rm
\line{\sevenrm a28.tex[106,phy] \today\hfill}

\bigskip
\ctrline{\bf DRIVERS}

\bigskip
A driver to print a rectangle of characters of height $H$ and width $W$:

\halign{\qquad\tt\lft{#}\cr
FOR R (* ROW *) :=1 TO H DO\cr
\qq BEGIN\cr
\qq FOR C (* COLUMN *) :=1 TO W DO\cr
\qq\qq S;\cr
\qq WRITELN\cr
\qq END;\cr}

\smallskip\noindent
Some examples:

$$\vcenter{\halign{$\hfil#\hfil\quad$&$\hfil#\hfil\quad$&{\tt #}\hfil\qquad%
&\hfil#\hfil\quad
&\hfil#\hfil\quad
&\hfil#\hfil\quad
&\hfil#\hfil\quad
&\hfil#\hfil\cr
H&W&$S$&\multispan5\hfil Result\hfil\cr
\noalign{\smallskip}
5&5&IF R=2&*&*&*&*&*\cr
&&THEN WRITE(`\]')\cr
&&ELSE WRITE(`*')&*&*&*&*&*\cr
&&&*&*&*&*&*\cr
&&&*&*&*&*&*\cr
\noalign{\bigskip}
5&5&IF (R=2) AND (C=3)&*&*&*&*&*\cr
&&THEN WRITE(`\]')&*&*&&*&*\cr
&&ELSE WRITE(`*')&*&*&*&*&*\cr
&&&*&*&*&*&*\cr
&&&*&*&*&*&*\cr
\noalign{\bigskip}
5&5&IF (R=2) AND (C=3) OR (C=4)&*&*&*&&*\cr
&&THEN WRITE(`\]')&*&*&&&*\cr
&&ELSE WRITE(`*')&*&*&*&&*\cr
&&&*&*&*&&*\cr
&&&*&*&*&&*\cr
\noalign{\bigskip}
5&5&IF (R=2) AND ((C=3) OR (C=4))&*&*&*&*&*\cr
&&THEN WRITE(`\]')&*&*&&&*\cr
&&ELSE WRITE(`*')&*&*&*&*&*\cr
&&&*&*&*&*&*\cr
&&&*&*&*&*&*\cr
\noalign{\bigskip}
5&5&IF ((R=2) AND (C=3))&*&*&*&*&*\cr
&&OR((R=4) AND (C=4))&*&*&&*&*\cr
&&THEN WRITE(`\]')&*&*&*&*&*\cr
&&ELSE WRITE(`*')&*&*&*&&*\cr
&&&*&*&*&*&*\cr
}}$$

\vfill\eject


$$\vcenter{\halign{$\hfil#\hfil\quad$&$\hfil#\hfil\quad$&{\tt #}\hfil\qquad%
&\hfil#\hfil\quad
&\hfil#\hfil\quad
&\hfil#\hfil\quad
&\hfil#\hfil\quad
&\hfil#\hfil\cr
H&W&$S$&\multispan5\hfil Result\hfil\cr
\noalign{\smallskip}
5&5&IF R=C&&*&*&*&*\cr
&&THEN WRITE(`\]')&*&&*&*&*\cr
&&ELSE WRITE(`*')&*&*&&*&*\cr
&&&*&*&*&&*\cr
&&&*&*&*&*\cr
\noalign{\bigskip}
&&IF (R=C) OR (R+C=6)&&*&*&*\cr
&&THEN WRITE(`\]')&*&&*&&*\cr
&&ELSE WRITE(`*')&*&*&&*&*\cr
&&&*&&*&&*\cr
&&&&*&*&*\cr
\noalign{\bigskip}
&&IF R<C&*\cr
&&THEN WRITE(`\]')&*&*\cr
&&ELSE WRITE(`*')&*&*&*\cr
&&&*&*&*&*\cr
&&&*&*&*&*&*\cr
\noalign{\bigskip}
&&IF R<=C\cr
&&THEN WRITE(`\]')&*\cr
&&ELSE WRITE(`*')&*&*\cr
&&&*&*&*\cr
&&&*&*&*&*\cr
}}$$

\vfill\eject
$$\vcenter{\halign{$\hfil#\hfil\quad$&$\hfil#\hfil\quad$&{\tt #}\hfil\cr
H&W&$S$\cr
\noalign{\smallskip}
15&15&IF SQR(R-8)+SQR(C-8)<SQR(6) THEN\cr}}$$

$$\vcenter{\halign{\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\quad
&\hfil{\tt #}\hfil\cr
\multispan{14}\hfill\rm Result\hfill\cr
*&*&*&*&*&*&*&*&*&*&*&*&*&*&*\cr
*&*&*&*&*&*&*&*&*&*&*&*&*&*&*\cr
*&*&*&*&&&&&&&&*&*&*&*\cr
*&*&*&&&&&&&&&&*&*&*\cr
*&*&&&&&&&&&&&&*&*\cr
*&*&&&&&&&&&&&&*&*\cr
*&*&&&&&&&&&&&&*&*\cr
*&*&&&&&&&&&&&&*&*\cr
*&*&&&&&&&&&&&&*&*\cr
*&*&&&&&&&&&&&&*&*\cr
*&*&&&&&&&&&&&&*&*\cr
*&*&*&&&&&&&&&&*&*&*\cr
*&*&*&*&&&&&&&&*&*&*&*\cr
*&*&*&*&*&*&*&*&*&*&*&*&*&*&*\cr
*&*&*&*&*&*&*&*&*&*&*&*&*&*&*\cr
}}$$


\bigskip
\parindent0pt
\copyright 1984 Robert W. Floyd

First draft March 28, 1984

\bye